<html>
  <head>
    <title>JSP book examples</title>
  </head>
  <body bgcolor="white">
    <table border="0" cellspacing="20">
      <tr>
        <td align="top"><img src="cover.gif" border="1"></td>
        <td valign=middle align=center colspan="2">
          <h1>Welcome to JavaServer Pages, 2nd Edition</h1>
          <p>
          Here you find all examples described in the book, as well as
          the <a href="doc/index.html">JavaDocs</a> for all Java classes used 
          in the examples. I hope you
          will have fun reading the book and that you'll find the examples
          useful.
          <p>
          <i>Hans Bergsten</i>
        </td>
      </tr>

      <tr>
        <td valign="top">
          <h2>Chapter 5</h2>
          <a href="ch5/easy.jsp">JSP is Easy</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch5/easy.jsp" target="_src">easy.jsp</a><br>
          </blockquote>
        </td>

        <td valign="top">
          <h2>Chapter 6</h2>
          <a href="ch6/cartoon.jsp">Cartoon Bean</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch6/cartoon.jsp" target="_src">cartoon.jsp</a>
          </blockquote>
          <a href="ch6/cartoon2.jsp">Cartoon Bean with JSTL</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch6/cartoon2.jsp" target="_src">cartoon2.jsp</a>
          </blockquote>
          <a href="ch6/message.jsp">Message Bean</a>
          <blockquote>
            Source:<br>
           <a href="jspSource/ch6/message.jsp" target="_src">message.jsp</a>
          </blockquote>
        </td>
        <td valign="top">
          <h2>Chapter 7</h2>
          <a href="ch7/message.jsp">Message Custom Action</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch7/message.jsp" target="_src">message.jsp</a>
          </blockquote>
        </td>
      </tr>

      <tr>
        <td valign="top">
          <h2>Chapter 8</h2>
          <a href="ch8/input_jstl.jsp">JSTL Parameter Access</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch8/input_jstl.jsp" target="_src">input_jstl.jsp</a><br>
          </blockquote>
          <a href="ch8/reqinfo.jsp">JSTL Request Data Access</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch8/reqinfo.jsp" target="_src">reqinfo.jsp</a>
          </blockquote>
          <a href="ch8/input_bean.jsp">Bean Parameter Access</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch8/input_bean.jsp" target="_src">input_bean.jsp</a><br>
          </blockquote>
          <a href="ch8/validate_jstl.jsp">JSTL Validation</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch8/validate_jstl.jsp" target="_src">validate_jstl.jsp</a><br>
          </blockquote>
          <a href="ch8/validate_bean.jsp">Bean Validation</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch8/validate_bean.jsp" target="_src">validate_bean.jsp</a><br>
          </blockquote>
        </td>
        <td valign="top">
          <h2>Chapter 9</h2>
          <a href="ch9/error1.jsp">Improperly Terminated Directive</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch9/error1.jsp" target="_src">error1.jsp</a><br>
          </blockquote>
          <a href="ch9/error2.jsp">Improperly Terminated Action</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch9/error2.jsp" target="_src">error2.jsp</a><br>
          </blockquote>
          <a href="ch9/error3.jsp">Invalid Attribute Name</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch9/error3.jsp" target="_src">error3.jsp</a><br>
          </blockquote>
          <a href="ch9/error4.jsp">Missing End Quote</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch9/error4.jsp" target="_src">error4.jsp</a><br>
          </blockquote>
          <a href="ch9/error5.jsp">Missing EL Curly Braces</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch9/error5.jsp" target="_src">error5.jsp</a><br>
          </blockquote>
          <a href="ch9/error6.jsp">Missing End EL Curly Brace</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch9/error6.jsp" target="_src">error6.jsp</a><br>
          </blockquote>
          <a href="ch9/error7.jsp">Invalid Property Name</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch9/error7.jsp" target="_src">error7.jsp</a><br>
          </blockquote>
          <a href="ch9/error8.jsp">Invalid Parameter Name</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch9/error8.jsp" target="_src">error8.jsp</a><br>
          </blockquote>
          <a href="ch9/error9.jsp">Logical Error</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch9/error9.jsp" target="_src">error9.jsp</a><br>
          </blockquote>
          <a href="ch9/debug.jsp?debug=resp+stdout&a=b">Debug Output</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch9/debug.jsp" target="_src">debug.jsp</a><br>
          </blockquote>
          <a href="ch9/calc.jsp">Runtime Exception and Error Page</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch9/calc.jsp" target="_src">calc.jsp</a><br>
            <a href="jspSource/ch9/errorpage.jsp" target="_src">errorpage.jsp</a><br>
          </blockquote>
          <a href="ch9/calc2.jsp">Runtime Exception and Catch</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch9/calc2.jsp" target="_src">calc2.jsp</a><br>
          </blockquote>
        </td>
        <td valign="top">
          <h2>Chapter 10</h2>
          <a href="ch10/userinfoinput.jsp">Separate Validation Page</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch10/userinfoinput.jsp" target="_src">userinfoinput.jsp</a><br>
            <a href="jspSource/ch10/userinfovalidate.jsp" target="_src">userinfovalidate.jsp</a><br>
            <a href="jspSource/ch10/userinfovalid.jsp" target="_src">userinfovalid.jsp</a><br>
          </blockquote>
          <a href="ch10/counter1.jsp">Session and Application Scope Counters</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch10/counter1.jsp" target="_src">counter1.jsp</a><br>
          </blockquote>
          <a href="ch10/counter2.jsp">URL Rewriting</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch10/counter2.jsp" target="_src">counter2.jsp</a><br>
          </blockquote>
          <a href="ch10/catalog.jsp">Shopping Cart</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch10/catalog.jsp" target="_src">catalog.jsp</a><br>
            <a href="jspSource/ch10/product.jsp" target="_src">product.jsp</a><br>
            <a href="jspSource/ch10/addtocart.jsp" target="_src">addtocart.jsp</a>
          </blockquote>
        </td>
      </tr>

      <tr>
        <td valign="top">
          <h2>Chapter 11</h2>
          <font color="red">All these examples require a database</font><p>
          <a href="ch11/enter.jsp">Employee Registration</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch11/enter.jsp" target="_src">enter.jsp</a><br>
            <a href="jspSource/ch11/validate.jsp" target="_src">validate.jsp</a><br>
            <a href="jspSource/ch11/store.jsp" target="_src">store.jsp</a><br>
            <a href="jspSource/ch11/confirmation.jsp" target="_src">confirmation.jsp</a>
          </blockquote>
          <a href="ch11/search.html">Employee Search</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch11/search.html" target="_src">search.html</a><br>
            <a href="jspSource/ch11/find.jsp" target="_src">find.jsp</a><br>
            <a href="jspSource/ch11/list.jsp" target="_src">list.jsp</a><br>
            <a href="jspSource/ch11/delete.jsp" target="_src">delete.jsp</a>
          </blockquote>
          <a href="ch11/maxrows.jsp">Getting a Few Rows at a Time</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch11/maxrows.jsp" target="_src">maxrows.jsp</a><br>
          </blockquote>
          <a href="ch11/foreach.jsp">Displaying a Few Rows at a Time</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch11/foreach.jsp" target="_src">foreach.jsp</a><br>
          </blockquote>
        </td>

        <td valign="top">
          <h2>Chapter 12</h2>
          <font color="red">All these examples require a database</font><p>
          <a href="ch12/admin/enter.jsp">Container-Provided Security, Employee Registration</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch12/admin/enter.jsp" target="_src">enter.jsp</a><br>
            <a href="jspSource/ch12/admin/validate.jsp" target="_src">validate.jsp</a><br>
            <a href="jspSource/ch12/admin/store.jsp" target="_src">store.jsp</a><br>
            <a href="jspSource/ch12/admin/confirmation.jsp" target="_src">confirmation.jsp</a>
          </blockquote>
          <a href="ch12/search/search.html">Container-Provided Security, Employee Search</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch12/search/search.html" target="_src">search.html</a><br>
            <a href="jspSource/ch12/search/find.jsp" target="_src">find.jsp</a><br>
            <a href="jspSource/ch12/search/list.jsp" target="_src">list.jsp</a><br>
            <a href="jspSource/ch12/search/delete.jsp" target="_src">delete.jsp</a>
          </blockquote>
          <a href="ch12/login.jsp">Application-Controlled Security, Project Billboard</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch12/login.jsp" target="_src">login.jsp</a><br>
            <a href="jspSource/ch12/authenticate.jsp" target="_src">authenticate.jsp</a><br>
            <a href="jspSource/ch12/main.jsp" target="_src">main.jsp</a><br>
            <a href="jspSource/ch12/entermsg.jsp" target="_src">entermsg.jsp</a><br>
            <a href="jspSource/ch12/storemsg.jsp" target="_src">storemsg.jsp</a><br>
            <a href="jspSource/ch12/updateprofile.jsp" target="_src">updateprofile.jsp</a><br>
            <a href="jspSource/ch12/logout.jsp" target="_src">logout.jsp</a>
          </blockquote>
        </td>
        <td valign="top">
          <h2>Chapter 13</h2>
          <a href="ch13/poll.jsp">Localized Poll Application</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch13/poll.jsp" target="_src">poll.jsp</a><br>
            <a href="jspSource/ch13/calculate.jsp" target="_src">calculate.jsp</a><br>
            <a href="jspSource/ch13/result.jsp" target="_src">result.jsp</a><br>
            <a href="jspSource/ch13/details_en.jsp" target="_src">details_en.jsp</a><br>
            <a href="jspSource/ch13/details_sv.jsp" target="_src">details_sv.jsp</a><br>
            <a href="jspSource/ch13/details_de.jsp" target="_src">details_de.jsp</a><br>
          </blockquote>
          <a href="ch13/japanese.jsp">Japanese Hello World</a>
          <p><font color="red">This example requires a browser with Japanese font</font>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch13/japanese.jsp" target="_src">japanese.jsp</a><br>
          </blockquote>
          <a href="ch13/input.jsp">Localized Input for Western Languages</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch13/input.jsp" target="_src">input.jsp</a><br>
            <a href="jspSource/ch13/process.jsp" target="_src">process.jsp</a><br>
          </blockquote>
          <a href="ch13/input_nw.jsp">Localized Input for Non-Western Languages</a>
          <p><font color="red">This example requires a browser with Japanese, Greek and Russian fonts</font>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch13/input_nw.jsp" target="_src">input_nw.jsp</a><br>
            <a href="jspSource/ch13/process_nw.jsp" target="_src">process_nw.jsp</a><br>
          </blockquote>
        </td>
      </tr>

      <tr>
        <td valign="top">
          <h2>Chapter 14</h2>
          <a href="ch14/phone_wml.jsp">WML Phone Book</a>
          <p><font color="red">This example requires a WML browser</font>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch14/phone_wml.jsp" target="_src">phone_wml.jsp</a><br>
          </blockquote>
          <a href="ch14/phone_html.jsp">XSLT to HTML Transformation</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch14/phone_html.jsp" target="_src">phone_html.jsp</a><br>
            <a href="jspSource/ch14/htmltable.xsl" target="_src">htmltable.xsl</a><br>
          </blockquote>
          <a href="ch14/phone.jsp">Device-Dependent XSLT Transformation</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch14/phone.jsp" target="_src">phone.jsp</a><br>
            <a href="jspSource/ch14/html.xsl" target="_src">html.xsl</a><br>
            <a href="jspSource/ch14/wml.xsl" target="_src">wml.xsl</a><br>
          </blockquote>
          <a href="ch14/news.jsp">XML-Based News Service</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch14/news.jsp" target="_src">news.jsp</a><br>
          </blockquote>
        </td>
        <td valign="top">
          <h2>Chapter 15</h2>
          <a href="ch15/scriptlet.jsp">Using Scriptlets</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch15/scriptlet.jsp" target="_src">scriptlet.jsp</a><br>
          </blockquote>
          <a href="ch15/fragment.jsp">Using Scriptlets With Code Fragments</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch15/fragment.jsp" target="_src">fragment.jsp</a><br>
          </blockquote>
          <a href="ch15/counter.jsp">Declaring Variables</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch15/counter.jsp" target="_src">counter.jsp</a><br>
          </blockquote>
          <a href="ch15/color.jsp">Declaring Methods</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch15/color.jsp" target="_src">color.jsp</a><br>
          </blockquote>
          <a href="ch15/core-rt.jsp">Using the JSTL RT Libraries</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch15/core-rt.jsp" target="_src">core-rt.jsp</a><br>
          </blockquote>
          <a href="ch15/allinone.jsp">All Scripting Elements</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch15/allinone.jsp" target="_src">allinone.jsp</a><br>
          </blockquote>
          <a href="ch15/error1.jsp">Invalid Semicolon and Missing Brace</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch15/error1.jsp" target="_src">error1.jsp</a><br>
          </blockquote>
          <a href="ch15/error2.jsp">Invalid Scripting Element Type</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch15/error2.jsp" target="_src">error2.jsp</a><br>
          </blockquote>
          <a href="ch15/error3.jsp">Missing Import</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch15/error3.jsp" target="_src">error3.jsp</a><br>
          </blockquote>
        </td>
        <td valign="top">
          <h2>Chapter 16</h2>
          <a href="ch16/page1.jsp">Including Page Fragments</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch16/page1.jsp" target="_src">page1.jsp</a><br>
            <a href="jspSource/ch16/page2.jsp" target="_src">page2.jsp</a><br>
            <a href="jspSource/ch16/page3.jsp" target="_src">page3.jsp</a><br>
            <a href="jspSource/ch16/header.htmlf" target="_src">header.htmlf</a><br>
            <a href="jspSource/ch16/footer.htmlf" target="_src">footer.htmlf</a><br>
            <a href="jspSource/ch16/navigation_jstl.jsp" target="_src">navigation_jstl.jsp</a><br>
            <a href="jspSource/ch16/navigation.jsp" target="_src">navigation.jsp</a><br>
          </blockquote>
          <a href="ch16/clientscript.jsp">Validation with JavaScript</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch16/clientscript.jsp" target="_src">clientscript.jsp</a><br>
          </blockquote>
          <a href="ch16/selections.jsp">Dynamically Generated JavaScript</a>
          <p><font color="red">This example requires a database</font>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch16/selections.jsp" target="_src">selections.jsp</a><br>
            <a href="jspSource/ch16/dynamicscript.jsp" target="_src">dynamicscript.jsp</a><br>
          </blockquote>
          <a href="ch16/applet.jsp">Using an Applet</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch16/applet.jsp" target="_src">applet.jsp</a><br>
          </blockquote>
          <a href="ch16/jspdocument.jsp?hello=World&name=Hans">Writing a JSP Document (XML Syntax)</a>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch16/jspdocument.jsp" target="_src">jspdocument.jsp</a><br>
          </blockquote>
        </td>
      </tr>

      <tr>
        <td valign="top">
          <h2>Chapter 18</h2>
          <a href="ch18/login.jsp">Application-Controlled Security, Servlet and JSP</a>
          <p><font color="red">This example requires a database</font>
          <blockquote>
            Source:<br>
            <a href="jspSource/ch18/login.jsp" target="_src">login.jsp</a><br>
            <a href="jspSource/ch18/protected/main.jsp" target="_src">main.jsp</a><br>
            <a href="jspSource/ch18/protected/entermsg.jsp" target="_src">entermsg.jsp</a><br>
          </blockquote>
        </td>
      </tr>
    </table>
  </body>
</html>
